//
//  WBNewfeatrue.swift
//  czWB
//
//  Created by Qing on 2018/12/27.
//  Copyright © 2018年 成哥哥. All rights reserved.
//

import UIKit

class WBNewfeatrue: UIView {

    @IBOutlet weak var enterWB: UIButton!
    @IBOutlet weak var pageConl: UIPageControl!
    @IBOutlet weak var scrollView: UIScrollView!
    
    /// 使用xib创建欢迎回来的页面。 类方法概念：被类型自己调用的方法叫做类型方法
    class func newFaeatrue() -> WBNewfeatrue {
        
        let nib = UINib(nibName: "WBNewfeatrue", bundle: nil)
        
        let v = nib.instantiate(withOwner: nil, options: [:])[0] as! WBNewfeatrue
        
        v.frame = UIScreen.main.bounds
        
        return v
        
    }
    
    
    ///  进入微博按钮
    @IBAction func enterWBAction(_ sender: Any) {
        
        // 点击后销毁子视图页面。
        removeFromSuperview()
    }
    
//    xib 开发在这里写代码是没有效果的。要在awakeFromNib里面写
    required init?(coder aDecoder: NSCoder) {
        
        super.init(coder: aDecoder)
        
    }
    
    override func awakeFromNib() {
        
//      新特性总页数
        let count = 3
//      当前屏幕尺寸
        let rect = UIScreen.main.bounds
        
//        在scroll view添加新特性图片显示
        for i in 0..<count {

            let imageName = "newFeatrue_\(i + 1)"
            let iv = UIImageView(image: UIImage(named: imageName))

            iv.frame = rect.offsetBy(dx: CGFloat(i) * rect.width, dy: 0)

            scrollView.addSubview(iv)
        }
        
//      为图片添加多一个宽度，是利于判断最后一页时显示表格内容。
        scrollView.contentSize = CGSize(width: CGFloat(count + 1) * rect.width, height: rect.height)

//        滑屏到最边一页时是否有反弹效果，默认true
        scrollView.bounces = false
//        是否启动分页效果，默认是false
        scrollView.isPagingEnabled = true
//        底部指示器是否显示
        scrollView.showsVerticalScrollIndicator = false
//        右边指示器是否显示
        scrollView.showsHorizontalScrollIndicator = false
        
        scrollView.delegate = self
        
//      隐藏按钮
        enterWB.isHidden = true
        
    }
    
}


//MARK: -- 计算页数并显示按钮
extension WBNewfeatrue: UIScrollViewDelegate {
    
//    当滚动视图完成时触发
    func scrollViewDidEndDecelerating(_ scrollView: UIScrollView) {
        
        print("我滚动了")
//        计算单个页数
        let page = scrollView.contentOffset.x / scrollView.bounds.width
        
//        如果移动到倒数第2页，则显示按钮
        enterWB.isHidden = (Int(page) != scrollView.subviews.count - 1)
        
//      新特性最后一页销毁scrollview
        if  page == CGFloat(scrollView.subviews.count) {
            
            removeFromSuperview()
            
        }
        
    }
    
//    scrollView 一滚动就会调用
    func scrollViewDidScroll(_ scrollView: UIScrollView) {

//        1.视图滚动时要隐藏按钮
        enterWB.isHidden = true
        
//        2.计算当前视图的偏移量. 开始是0, 整页偏移量是1，
//        加0.5可以达到当第上一页偏移量在一半的时候，分页控件提前显示下一页。
        let page = (scrollView.contentOffset.x / scrollView.bounds.width + 0.5)
        
//        3.设置分页控件
        pageConl.currentPage = Int(page)
    }
    
}
